package cinvestav.adviseme.databasemodel;

import java.util.List;
import java.util.Map;

import cinvestav.adviseme.datamodel.Persona;
import cinvestav.adviseme.datamodel.Solicitud;
import cinvestav.adviseme.util.DBException;

public interface ISolicitudDB {

	/**
	 * Obtiene la lista de solicitudes agregados de la base de datos
	 * @return Una lista parametrizada con los objetos cargados de la base de datos
	 * @throws DBException
	 */
	List<Solicitud> getAll() throws DBException;
	/**
	 * Obtiene la lista de las solicitudes pendientes de una persona
	 * @param solicitado	Persona de la cual se quieren buscar las solicitudes que no ha respondido
	 * @return	Lista de Solicitudes pendientes
	 * @throws DBException
	 */
	List<Solicitud> getPendingRequest(Persona solicitado) throws DBException;
	List<Solicitud> getNotRespondRequest(Persona solicitante) throws DBException;
    List<Solicitud> getByFiter(Map<String, String[]> filtros) throws DBException;    
    Boolean delete(Solicitud solicitud) throws DBException;
    Boolean insert(Solicitud solicitud) throws DBException;
    Boolean update(Solicitud solicitud) throws DBException;
}
